1. Data preprocessing
  1. Read FlowJo files into R.
  2. Create a data frame with intensity measurements for each marker for all samples within the experiment to be analyzed.
  3. Harmonize data
  4. Explore clusters
# load necessary libraries 
library(Seurat)
library(dplyr) 
library(ggplot2)
# library(CelltypeR)

Read in the flow data This data should be the gated live cells.
All samples need to be in one folder.

sampleNames(flowset) <- sampleNames(flowset) <- c("3450_0306","AIW002_0306","AJG001C_0306","3450_0317A","AIW002_0317A","AJG001C_0317A","3450_0317B","AIW002_0317B","AJG001C_0317B")
sampleNames(flowset)
[1] "3450_0306"     "AIW002_0306"   "AJG001C_0306"  "3450_0317A"    "AIW002_0317A"  "AJG001C_0317A"
[7] "3450_0317B"    "AIW002_0317B"  "AJG001C_0317B"

Harmonize data to remove batch or technical variation

This requires us to look and see where there are two peaks to align. We need to visualize the peaks of the transformed data before aligning.


# we can decided what level of processing to choose with the argument 'processing'
# biexp only applies a biexponential transformation
# align applies biexp transform and then aligns peaks
# retro (default), transforms, aligns and then reverse transforms
flowset_biexp <- harmonize(flowset, processing = 'biexp')
# we can visualize the peaks to see where there are two peaks for alignment

# we need to enter the column index for which peaks to align, the alignment for one or two peaks is not the same. 
#plotdensity_flowset(flowset)
plotdensity_flowset(flowset_biexp) # to see the peaks
Warning in melt(lapply(as.list(flowset@frames), function(x) { :
  The melt generic in data.table has been passed a list and will attempt to redirect to the relevant reshape2 method; please note that reshape2 is deprecated, and this redirection is now deprecated as well. To continue using melt methods from reshape2 while both libraries are attached, e.g. melt.list, you can prepend the namespace like reshape2::melt(lapply(as.list(flowset@frames), function(x) {    x = as.data.frame(x@exprs)})). In the next version, this warning will become an error.
No id variables; using all as measure variables
No id variables; using all as measure variables
No id variables; using all as measure variables
No id variables; using all as measure variables
No id variables; using all as measure variables
No id variables; using all as measure variables
No id variables; using all as measure variables
No id variables; using all as measure variables
No id variables; using all as measure variables
Warning in geom_density_ridges(alpha = 0.4, verbose = FALSE) :
  Ignoring unknown parameters: `verbose`
Picking joint bandwidth of 0.0468
Picking joint bandwidth of 0.0299
Picking joint bandwidth of 0.0164
Picking joint bandwidth of 0.082
Picking joint bandwidth of 0.0669
Picking joint bandwidth of 0.0172
Picking joint bandwidth of 0.818
Picking joint bandwidth of 0.149
Picking joint bandwidth of 0.722
Picking joint bandwidth of 0.862
Picking joint bandwidth of 0.255
Picking joint bandwidth of 0.24
Picking joint bandwidth of 0.157
Picking joint bandwidth of 0.381
Picking joint bandwidth of 0.614
Picking joint bandwidth of 0.729
Picking joint bandwidth of 0.564
Picking joint bandwidth of 0.241
Picking joint bandwidth of 0.754
Picking joint bandwidth of 0.661
Picking joint bandwidth of 0.102

flowset_align <- harmonize(flowset, processing = 'align', 
                           two_peaks = c(7:20),
                       one_peak = c(1:6,21), threshold = 0.01)

Adjusting the distance between landmarks
.........

Adjusting the distance between landmarks
.........
flowset_retro <- harmonize(flowset, processing = 'retro', 
                           two_peaks = c(7:20),
                       one_peak = c(1:6,21), threshold = 0.01)

Adjusting the distance between landmarks
.........

Adjusting the distance between landmarks
.........
df <- flowset_to_csv(flowset_retro)

Now we have made all the different processing of the fsc files. We can visualize the intensity in cell density plots to see the alignment

#plotdensity_flowset(flowset)
plotdensity_flowset(flowset_biexp)
Warning in melt(lapply(as.list(flowset@frames), function(x) { :
  The melt generic in data.table has been passed a list and will attempt to redirect to the relevant reshape2 method; please note that reshape2 is deprecated, and this redirection is now deprecated as well. To continue using melt methods from reshape2 while both libraries are attached, e.g. melt.list, you can prepend the namespace like reshape2::melt(lapply(as.list(flowset@frames), function(x) {    x = as.data.frame(x@exprs)})). In the next version, this warning will become an error.
No id variables; using all as measure variables
No id variables; using all as measure variables
No id variables; using all as measure variables
No id variables; using all as measure variables
No id variables; using all as measure variables
No id variables; using all as measure variables
No id variables; using all as measure variables
No id variables; using all as measure variables
No id variables; using all as measure variables
Warning in geom_density_ridges(alpha = 0.4, verbose = FALSE) :
  Ignoring unknown parameters: `verbose`
Picking joint bandwidth of 0.0468
Picking joint bandwidth of 0.0299
Picking joint bandwidth of 0.0164
Picking joint bandwidth of 0.082
Picking joint bandwidth of 0.0669
Picking joint bandwidth of 0.0172
Picking joint bandwidth of 0.818
Picking joint bandwidth of 0.149
Picking joint bandwidth of 0.722
Picking joint bandwidth of 0.862
Picking joint bandwidth of 0.255
Picking joint bandwidth of 0.24
Picking joint bandwidth of 0.157
Picking joint bandwidth of 0.381
Picking joint bandwidth of 0.614
Picking joint bandwidth of 0.729
Picking joint bandwidth of 0.564
Picking joint bandwidth of 0.241
Picking joint bandwidth of 0.754
Picking joint bandwidth of 0.661
Picking joint bandwidth of 0.102

plotdensity_flowset(flowset_align)
Warning in melt(lapply(as.list(flowset@frames), function(x) { :
  The melt generic in data.table has been passed a list and will attempt to redirect to the relevant reshape2 method; please note that reshape2 is deprecated, and this redirection is now deprecated as well. To continue using melt methods from reshape2 while both libraries are attached, e.g. melt.list, you can prepend the namespace like reshape2::melt(lapply(as.list(flowset@frames), function(x) {    x = as.data.frame(x@exprs)})). In the next version, this warning will become an error.
No id variables; using all as measure variables
No id variables; using all as measure variables
No id variables; using all as measure variables
No id variables; using all as measure variables
No id variables; using all as measure variables
No id variables; using all as measure variables
No id variables; using all as measure variables
No id variables; using all as measure variables
No id variables; using all as measure variables
Warning in geom_density_ridges(alpha = 0.4, verbose = FALSE) :
  Ignoring unknown parameters: `verbose`
Picking joint bandwidth of 0.0468
Picking joint bandwidth of 0.0299
Picking joint bandwidth of 0.0164
Picking joint bandwidth of 0.082
Picking joint bandwidth of 0.0669
Picking joint bandwidth of 0.0172
Picking joint bandwidth of 0.819
Picking joint bandwidth of 0.194
Picking joint bandwidth of 0.724
Picking joint bandwidth of 0.863
Picking joint bandwidth of 0.301
Picking joint bandwidth of 0.273
Picking joint bandwidth of 0.156
Picking joint bandwidth of 0.39
Picking joint bandwidth of 0.616
Picking joint bandwidth of 0.742
Picking joint bandwidth of 0.561
Picking joint bandwidth of 0.241
Picking joint bandwidth of 0.763
Picking joint bandwidth of 0.657
Picking joint bandwidth of 0.102

#plotdensity_flowset(flowset_retro)

Now we will make test out clustering. For Seurat clustering and Phenograph we will make the Seurat object Flowsome takes in the dataframe directly.


# the function make_seu will take in the df of expression and Antibody/Marker list as a vector and create a seurat object. Values are scaled. Marker expression will be in the "RNA" slot. PCA is calculated using AB vector as the features 

# make sure to always keep the same antibody order or your labels will not be correct


# antibody features in order to appear on the plots
AB <- c("CD24","CD56","CD29","CD15","CD184","CD133","CD71","CD44","GLAST","AQP4","HepaCAM", "CD140a","O4")
seu <- make_seu(df, AB_vector = AB)
Warning: Using an external vector in selections was deprecated in tidyselect 1.1.0.
ℹ Please use `all_of()` or `any_of()` instead.
  # Was:
  data %>% select(AB_vector)

  # Now:
  data %>% select(all_of(AB_vector))

See <https://tidyselect.r-lib.org/reference/faq-external-vector.html>.
This warning is displayed once every 8 hours.
Call `lifecycle::last_lifecycle_warnings()` to see where this warning was generated.
Centering and scaling data matrix

  |                                                                                                    
  |                                                                                              |   0%
  |                                                                                                    
  |==============================================================================================| 100%
Warning in irlba(A = t(x = object), nv = npcs, ...) :
  You're computing too large a percentage of total singular values, use a standard svd instead.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
PC_ 1 
Positive:  CD44, CD184, CD24, CD29, CD133, CD15 
Negative:  CD140a, O4, HepaCAM, CD71, AQP4, GLAST 
PC_ 2 
Positive:  CD44, CD15, CD24, CD184, GLAST, CD140a 
Negative:  CD29, CD56, CD133, CD71, AQP4, O4 
PC_ 3 
Positive:  CD29, CD44, CD71, CD140a, O4, CD24 
Negative:  CD56, CD15, CD133, CD184, GLAST, AQP4 
PC_ 4 
Positive:  CD184, CD24, CD133, AQP4, GLAST, CD15 
Negative:  CD44, CD56, CD140a, CD29, O4, HepaCAM 
PC_ 5 
Positive:  CD24, CD184, CD29, CD56, CD15, O4 
Negative:  CD133, AQP4, CD71, CD44, GLAST, HepaCAM 

Save dataframe and seurat object for later


output_path <- "/Users/rhalenathomas/Documents/Data/FlowCytometry/PhenoID/Analysis/testingLibrary/"

# to save the df for later
# write.csv(df, "pathway/filename.csv")
write.csv(df, paste(output_path,"df9000Feb15.csv", sep = ""))

# save the seurat object
saveRDS(seu, paste(output_path,"seu9000Feb15.RDS", sep = ""))

Read in the csv of the flow files processed and the seurat object

df.input <- read.csv("/Users/rhalenathomas/Documents/Data/FlowCytometry/PhenoID/Analysis/testingLibrary/df9000Feb15.csv")

seu <- readRDS("/Users/rhalenathomas/Documents/Data/FlowCytometry/PhenoID/Analysis/testingLibrary/seu9000Feb15.RDS")

Test Flowsom


output_path <- "/Users/rhalenathomas/Documents/Data/FlowCytometry/PhenoID/Analysis/testingLibrary/exp_clusters/flow/"

flowsom.test <- flowsom(input = seu, #seurat
                    df_input = df.input, #the processed df2 file before being converted to seurat
                    flow_k = c(3,5),
                    run.stats = TRUE,
                    run.plot = FALSE,
                    save_to = output_path)
Error in h(simpleError(msg, call)) : 
  error in evaluating the argument 'x' in selecting a method for function 'nrow': unused argument (where(is.numeric))

Explore cluster parameters

df2 <- df.input %>% dplyr::select(AB) # need to add this line into the main explore param function 

Phenograph


output_path <- "/Users/rhalenathomas/Documents/Data/FlowCytometry/PhenoID/Analysis/testingLibrary/exp_clusters/pheno/"

pheno.test <- phenograph(input = seu, df_input = df.input,
                         pheno_lou_kn = c(20,40),
                         run.stats = TRUE,
                         run.plot = TRUE,
                         save_to = output_path)
Rasterizing points since number of points exceeds 100,000.
To disable this behavior set `raster=FALSE`
Rasterizing points since number of points exceeds 100,000.
To disable this behavior set `raster=FALSE`
Rasterizing points since number of points exceeds 100,000.
To disable this behavior set `raster=FALSE`
Rasterizing points since number of points exceeds 100,000.
To disable this behavior set `raster=FALSE`
Rasterizing points since number of points exceeds 100,000.
To disable this behavior set `raster=FALSE`
Rasterizing points since number of points exceeds 100,000.
To disable this behavior set `raster=FALSE`
Rasterizing points since number of points exceeds 100,000.
To disable this behavior set `raster=FALSE`
Rasterizing points since number of points exceeds 100,000.
To disable this behavior set `raster=FALSE`
Rasterizing points since number of points exceeds 100,000.
To disable this behavior set `raster=FALSE`
Rasterizing points since number of points exceeds 100,000.
To disable this behavior set `raster=FALSE`
Rasterizing points since number of points exceeds 100,000.
To disable this behavior set `raster=FALSE`
Rasterizing points since number of points exceeds 100,000.
To disable this behavior set `raster=FALSE`
Rasterizing points since number of points exceeds 100,000.
To disable this behavior set `raster=FALSE`
Rasterizing points since number of points exceeds 100,000.
To disable this behavior set `raster=FALSE`
Computing nearest neighbor graph
Computing SNN
11:41:14 UMAP embedding parameters a = 0.9922 b = 1.112
11:41:14 Read 197160 rows and found 12 numeric columns
11:41:14 Using Annoy for neighbor search, n_neighbors = 20
11:41:14 Building Annoy index with metric = cosine, n_trees = 50
0%   10   20   30   40   50   60   70   80   90   100%
[----|----|----|----|----|----|----|----|----|----|
**************************************************|
11:41:29 Writing NN index file to temp file /var/folders/k4/khtkczkd5tn732ftjpwgtr240000gn/T//RtmpFmyVpn/file178c93f4deb41
11:41:29 Searching Annoy index using 1 thread, search_k = 2000
11:42:23 Annoy recall = 100%
11:42:24 Commencing smooth kNN distance calibration using 1 thread with target n_neighbors = 20
11:42:31 Initializing from normalized Laplacian + noise (using irlba)
11:42:44 Commencing optimization for 200 epochs, with 5499496 positive edges
Using method 'umap'
0%   10   20   30   40   50   60   70   80   90   100%
[----|----|----|----|----|----|----|----|----|----|
**************************************************|
11:44:32 Optimization finished
Run Rphenograph starts:
  -Input data of 197160 rows and 13 columns
  -k is set to 20
  Finding nearest neighbors...DONE ~ 51.131 s
  Compute jaccard coefficient between nearest-neighbor sets...DONE ~ 16.735 s
  Build undirected graph from the weighted links...DONE ~ 19.493 s
  Run louvain clustering on the graph ...DONE ~ 21.039 s
Run Rphenograph DONE, totally takes 108.397999999986s.
  Return a community class
  -Modularity value: 0.8848982 
  -Number of clusters: 42
Rasterizing points since number of points exceeds 100,000.
To disable this behavior set `raster=FALSE`
Error in select(., where(is.numeric)) : 
  unused argument (where(is.numeric))

Test functions Louvain


output_path <- "/Users/rhalenathomas/Documents/Data/FlowCytometry/PhenoID/Analysis/testingLibrary/exp_clusters/seu/"

lou.test <- louvain(input = seu, #seu object
                    df_input = df.input,
                    pheno_lou_kn = c(20,40),
                    resolutions = c(0.2,0.5),
                    run.plot = FALSE, #option to save the graphs  
                    run.stats = FALSE, #option to save stats list  
                    save_to #only required when save is TRUE
)
Computing nearest neighbor graph
Computing SNN
12:58:17 UMAP embedding parameters a = 0.9922 b = 1.112
12:58:17 Read 197160 rows and found 12 numeric columns
12:58:17 Using Annoy for neighbor search, n_neighbors = 20
12:58:17 Building Annoy index with metric = cosine, n_trees = 50
0%   10   20   30   40   50   60   70   80   90   100%
[----|----|----|----|----|----|----|----|----|----|
**************************************************|
12:58:31 Writing NN index file to temp file /var/folders/k4/khtkczkd5tn732ftjpwgtr240000gn/T//RtmpFmyVpn/file178c9321b124b
12:58:32 Searching Annoy index using 1 thread, search_k = 2000
12:59:25 Annoy recall = 100%
12:59:26 Commencing smooth kNN distance calibration using 1 thread with target n_neighbors = 20
12:59:32 Initializing from normalized Laplacian + noise (using irlba)
12:59:44 Commencing optimization for 200 epochs, with 5499496 positive edges
Using method 'umap'
0%   10   20   30   40   50   60   70   80   90   100%
[----|----|----|----|----|----|----|----|----|----|
**************************************************|
13:01:31 Optimization finished
Modularity Optimizer version 1.3.0 by Ludo Waltman and Nees Jan van Eck

Number of nodes: 197160
Number of edges: 5227227

Running Louvain algorithm...
0%   10   20   30   40   50   60   70   80   90   100%
[----|----|----|----|----|----|----|----|----|----|
**************************************************|
Maximum modularity in 10 random starts: 0.9166
Number of communities: 14
Elapsed time: 110 seconds
Modularity Optimizer version 1.3.0 by Ludo Waltman and Nees Jan van Eck

Number of nodes: 197160
Number of edges: 5227227

Running Louvain algorithm...
0%   10   20   30   40   50   60   70   80   90   100%
[----|----|----|----|----|----|----|----|----|----|
**************************************************|
Maximum modularity in 10 random starts: 0.8845
Number of communities: 22
Elapsed time: 140 seconds
Computing nearest neighbor graph
Computing SNN
13:07:10 UMAP embedding parameters a = 0.9922 b = 1.112
13:07:10 Read 197160 rows and found 12 numeric columns
13:07:10 Using Annoy for neighbor search, n_neighbors = 40
13:07:10 Building Annoy index with metric = cosine, n_trees = 50
0%   10   20   30   40   50   60   70   80   90   100%
[----|----|----|----|----|----|----|----|----|----|
**************************************************|
13:07:25 Writing NN index file to temp file /var/folders/k4/khtkczkd5tn732ftjpwgtr240000gn/T//RtmpFmyVpn/file178c9f4e13a0
13:07:25 Searching Annoy index using 1 thread, search_k = 4000
13:08:56 Annoy recall = 100%
13:08:57 Commencing smooth kNN distance calibration using 1 thread with target n_neighbors = 40
13:09:08 Initializing from normalized Laplacian + noise (using irlba)
13:09:32 Commencing optimization for 200 epochs, with 11184324 positive edges
Using method 'umap'
0%   10   20   30   40   50   60   70   80   90   100%
[----|----|----|----|----|----|----|----|----|----|
**************************************************|
13:11:50 Optimization finished
Modularity Optimizer version 1.3.0 by Ludo Waltman and Nees Jan van Eck

Number of nodes: 197160
Number of edges: 11735573

Running Louvain algorithm...
0%   10   20   30   40   50   60   70   80   90   100%
[----|----|----|----|----|----|----|----|----|----|
**************************************************|
Maximum modularity in 10 random starts: 0.9134
Number of communities: 12
Elapsed time: 212 seconds
Modularity Optimizer version 1.3.0 by Ludo Waltman and Nees Jan van Eck

Number of nodes: 197160
Number of edges: 11735573

Running Louvain algorithm...
0%   10   20   30   40   50   60   70   80   90   100%
[----|----|----|----|----|----|----|----|----|----|
**************************************************|
Maximum modularity in 10 random starts: 0.8785
Number of communities: 21
Elapsed time: 197 seconds

Annotate clusters 1. Visualization for manual annotation. - output by clustering function 2. CAM (Correlation assignment model) - requires reference matrix 3. RFM (Random Forest Model) - requires annotated matching flow dataset 4. Seurat label transfer - requires annotated matching flow data in a seurat object


# run clustering with only desired conditions - use function - TEMP run directly 

seu <- RunPCA(seu, features = AB)
Warning in irlba(A = t(x = object), nv = npcs, ...) :
  You're computing too large a percentage of total singular values, use a standard svd instead.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
PC_ 1 
Positive:  CD44, CD184, CD24, CD29, CD133, CD15 
Negative:  CD140a, O4, HepaCAM, CD71, AQP4, GLAST 
PC_ 2 
Positive:  CD44, CD15, CD24, CD184, GLAST, CD140a 
Negative:  CD29, CD56, CD133, CD71, AQP4, O4 
PC_ 3 
Positive:  CD29, CD44, CD71, CD140a, O4, CD24 
Negative:  CD56, CD15, CD133, CD184, GLAST, AQP4 
PC_ 4 
Positive:  CD184, CD24, CD133, AQP4, GLAST, CD15 
Negative:  CD44, CD56, CD140a, CD29, O4, HepaCAM 
PC_ 5 
Positive:  CD24, CD184, CD29, CD56, CD15, O4 
Negative:  CD133, AQP4, CD71, CD44, GLAST, HepaCAM 
seu <- FindNeighbors(seu, dims = 1:12, k.param = 60)
Computing nearest neighbor graph
Computing SNN
# must take one less than the number of antibodies 

seu <- FindClusters(seu, resolution = 0.8)
Modularity Optimizer version 1.3.0 by Ludo Waltman and Nees Jan van Eck

Number of nodes: 197160
Number of edges: 15452928

Running Louvain algorithm...
0%   10   20   30   40   50   60   70   80   90   100%
[----|----|----|----|----|----|----|----|----|----|
**************************************************|
Maximum modularity in 10 random starts: 0.8578
Number of communities: 24
Elapsed time: 210 seconds
seu <- RunUMAP(seu, dims = 1:12, n.neighbors = 46, min.dist = 0.4,
               spread = 1.5)
Warning: The default method for RunUMAP has changed from calling Python UMAP via reticulate to the R-native UWOT using the cosine metric
To use Python UMAP via reticulate, set umap.method to 'umap-learn' and metric to 'correlation'
This message will be shown once per session
14:38:39 UMAP embedding parameters a = 0.4502 b = 1.076
14:38:39 Read 197160 rows and found 12 numeric columns
14:38:39 Using Annoy for neighbor search, n_neighbors = 46
14:38:39 Building Annoy index with metric = cosine, n_trees = 50
0%   10   20   30   40   50   60   70   80   90   100%
[----|----|----|----|----|----|----|----|----|----|
**************************************************|
14:38:55 Writing NN index file to temp file /var/folders/k4/khtkczkd5tn732ftjpwgtr240000gn/T//Rtmpriq53r/file731c4b3bc2d7
14:38:55 Searching Annoy index using 1 thread, search_k = 4600
14:40:33 Annoy recall = 100%
14:40:35 Commencing smooth kNN distance calibration using 1 thread with target n_neighbors = 46
14:40:48 Initializing from normalized Laplacian + noise (using irlba)
14:41:15 Commencing optimization for 200 epochs, with 12846190 positive edges
Using method 'umap'
0%   10   20   30   40   50   60   70   80   90   100%
[----|----|----|----|----|----|----|----|----|----|
**************************************************|
14:43:38 Optimization finished
DimPlot(seu)
Rasterizing points since number of points exceeds 100,000.
To disable this behavior set `raster=FALSE`

# save with graph
saveRDS(seu,"/Users/rhalenathomas/Documents/Data/FlowCytometry/PhenoID/Analysis/testingLibrary/seu9000Feb24.RDS")

Visualize expression on UMAP and with heat maps


# this will let us see one at at time
for (i in AB) {
  print(FeaturePlot(seu, features = i, min.cutoff = 'q1', max.cutoff = 'q95', label = TRUE))
}
Rasterizing points since number of points exceeds 100,000.
To disable this behavior set `raster=FALSE`
Rasterizing points since number of points exceeds 100,000.
To disable this behavior set `raster=FALSE`
Rasterizing points since number of points exceeds 100,000.
To disable this behavior set `raster=FALSE`
Rasterizing points since number of points exceeds 100,000.
To disable this behavior set `raster=FALSE`
Rasterizing points since number of points exceeds 100,000.
To disable this behavior set `raster=FALSE`
Rasterizing points since number of points exceeds 100,000.
To disable this behavior set `raster=FALSE`
Rasterizing points since number of points exceeds 100,000.
To disable this behavior set `raster=FALSE`
Rasterizing points since number of points exceeds 100,000.
To disable this behavior set `raster=FALSE`
Rasterizing points since number of points exceeds 100,000.
To disable this behavior set `raster=FALSE`
Rasterizing points since number of points exceeds 100,000.
To disable this behavior set `raster=FALSE`
Rasterizing points since number of points exceeds 100,000.
To disable this behavior set `raster=FALSE`
Rasterizing points since number of points exceeds 100,000.
To disable this behavior set `raster=FALSE`
Rasterizing points since number of points exceeds 100,000.
To disable this behavior set `raster=FALSE`


output_path <- "/Users/rhalenathomas/Documents/Data/FlowCytometry/PhenoID/Analysis/testingLibrary/"
saveRDS(seu, paste(output_path,"cluster9000.RDS"))

Predict cell annotations with CAM (Corralations assignment method)


reference_path <- "/Users/rhalenathomas/GITHUB/CelltypeR/Data/ReferenceMatrix9celltypesOrdered.csv"



test_data <- read.csv("/Users/rhalenathomas/Documents/Data/FlowCytometry/PhenoID/Analysis/testingLibrary/df9000Feb15.csv") 
reference_data <- read.csv(reference_path)

cor <- find_correlation(test_data, 
                             reference_data, 
                             min_corr = 0.3, 
                             min_diff = 0.05)

class(cor)
[1] "data.frame"
# creates a dataframe with cor1 cor2 and predicted cell type label

Visualize the CAM results


plot_corr(cor)
Warning in melt(df) :
  The melt generic in data.table has been passed a data.frame and will attempt to redirect to the relevant reshape2 method; please note that reshape2 is deprecated, and this redirection is now deprecated as well. To continue using melt methods from reshape2 while both libraries are attached, e.g. melt.list, you can prepend the namespace like reshape2::melt(df). In the next version, this warning will become an error.
Using X, best.cell.type, second.cell.type, cell.label as id variables
Warning in melt(df.downsample) :
  The melt generic in data.table has been passed a data.frame and will attempt to redirect to the relevant reshape2 method; please note that reshape2 is deprecated, and this redirection is now deprecated as well. To continue using melt methods from reshape2 while both libraries are attached, e.g. melt.list, you can prepend the namespace like reshape2::melt(df.downsample). In the next version, this warning will become an error.
Using X, best.cell.type, second.cell.type, cell.label as id variables
Warning in melt(double.cells) :
  The melt generic in data.table has been passed a data.frame and will attempt to redirect to the relevant reshape2 method; please note that reshape2 is deprecated, and this redirection is now deprecated as well. To continue using melt methods from reshape2 while both libraries are attached, e.g. melt.list, you can prepend the namespace like reshape2::melt(double.cells). In the next version, this warning will become an error.
Using X, best.cell.type, second.cell.type, cell.label as id variables
[[1]]

[[2]]

[[3]]

[[4]]

[[5]]

[[6]]

[[7]]
Warning: Removed 1 row containing missing values (`geom_line()`).
Warning: Removed 1 rows containing missing values (`geom_point()`).

Apply correlation predictions to clusters and output a vector for annotation functions

Run get annotations function to return a vector of annotation in the order of the clusters.

cor.ann <- get_annotation(seu, seu.cluster = seu$RNA_snn_res.0.8, seu.label = seu$cor.labels, 
               top_n = 3, ignore_unknown = TRUE, Label = "CAM")
[1] "Annotations in order of clusters starting at 0"
cor.ann

Use a trained Random Forest model to predict cell types. Training of the Random Forest model with an annotated data set is below.


# you must have a saved trained model from a data object annotated from the same markers

rf <- readRDS("/Users/rhalenathomas/Documents/Data/FlowCytometry/PhenoID/Analysis/PaperFigures/RFM_trained.11072022.Rds")


rfm.pred <- RFM_predict(seu, rf)
head(rfm.pred)

# add the predictions into the seurat object

seu <- AddMetaData(object=seu, metadata=rfm.pred$`predict(rf, df)`, col.name = 'rfm.labels')

# check that the data is added 
table(seu$rfm.labels)

          Unknown             Mixed         Neurons 1     Radial Glia 1        Epithelial 
               16            177561               612               155              8426 
     Astrocytes 1         Neurons 2      Astrocytes 2      Astrocytes 3 Astrocytes mature 
              763                 4              6889               360              1233 
        Neurons 3               NPC     Radial Glia 2     Radial Glia 3       Endothelial 
              566               543                 9                 7                16 
 Oligodendrocytes       Stem-like 1       Stem-like 2       Neural stem 
                0                 0                 0                 0 

Get the annotation by cluster for the RFM


rfm.ann <- get_annotation(seu, seu$RNA_snn_res.0.8,seu$rfm.labels, 
               top_n = 3, filter_out = c("unknown","Unknown","Mixed"), Label = "RFM")
[1] "Annotations in order of clusters starting at 0"
rfm.ann
NA

Plot RFM predictions



plot_lab_clust(seu, seu.cluster = seu$RNA_snn_res.0.8, seu.labels = seu$rfm.labels, filter_out = c("unknown","Unknown","Mixed"))

Predicting cell types with Seurat label transfer using anchors


# takes in a seurat object with the labels added 
# makes a dataframe with the count of predicted labels for each cluster
# input seurat object with the predicted labels in the meta data
# input the clusters meta data slot to be labels
# input the meta data slot with the labels (correlation, random forest, seurat predicted)

#need reference data object with labels
seu.r<- readRDS("/Users/rhalenathomas/Documents/Data/FlowCytometry/PhenoID/Analysis/PaperFigures/Seu9000annot.08072021.RDS")


# the output is a seurat object with the predicted annotations

seu <- seurat_predict(seu, seu.r, ref_id = 'subgroups', down.sample = 500, markers = AB)
Projecting cell embeddings
Finding neighborhoods
Finding anchors
    Found 37616 anchors
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Warning: Requested number is larger than the number of available items (13). Setting to 13.
Filtering anchors
    Retained 14879 anchors
Finding integration vectors
Finding integration vector weights
0%   10   20   30   40   50   60   70   80   90   100%
[----|----|----|----|----|----|----|----|----|----|
**************************************************|
Predicting cell labels

Get a consensus of cluster annotations, Add the annotations to the seurat object


seu <- cluster_annotate(seu, ann.list, 
                        annotation_name ="CellType3", 
                        to_label = "RNA_snn_res.0.8")
DimPlot(seu)
Rasterizing points since number of points exceeds 100,000.
To disable this behavior set `raster=FALSE`

Save an annotated data object

Compare groups


seu <- readRDS("/Users/rhalenathomas/Documents/Data/FlowCytometry/PhenoID/Analysis/testingLibrary/seu9000Feb15.RDS")

Train Random Forest model Requires a labelled seurat object More cells will give higher accuracy but increase computation time. Run in HPC with lots of cells


rf <- RFM_train(seurate_object = seu, 
                             AB_list = AB, annotations = seu$CellType3,
                      split = c(0.8,0.2),
                      downsample = 20000,
                      seed = 222,
                      mytry = c(1:10),
                      maxnodes = c(12: 25),
                      trees = c(250, 500, 1000,2000),
                      start_node = 15)
[1] "optimize number of features to draw"
[1] "Best number of features to draw is 4"
[1] "Max accuracy is 0.897427262015546"
[1] "Searching for best max node size"
[1] "The max accuracy is 0.761875. For the maxnodes of 24"
[1] "searching for best number of trees"
[1] "Best trees  2000"
[1] "The max accuracy is 0.75577763897564. For 2000 trees"
[1] "predict training data"
Confusion Matrix and Statistics

                   Reference
Prediction          unknown radial glia 1 mixed neurons 1 radial glia 3 epithelial astrocytes mature
  unknown              2917           117   175        83            75         98               119
  radial glia 1         153          1397   190        64            20         22               125
  mixed                   9            95   978        16             4          2                22
  neurons 1               9             5    54      1953            12         16                20
  radial glia 3           5            17     3        45           963         15                20
  epithelial              7             9    25         8             6       1308                19
  astrocytes mature       1             4     1         2            20         20               588
  endothelial             0             0     2         7            12          7                 1
  astrocytes 1           29             0     8         8             0          4                10
  radial glia 2           0             0     7         0             0          1                 8
  npc                     0             0     0         8            11          2                 2
  neurons 3               0             0     0         0             0          0                 0
  oligodendrocytes        0             0     0         0             0          0                 0
  stem-like 1             0             0     0         0             0          0                 0
                   Reference
Prediction          endothelial astrocytes 1 radial glia 2  npc neurons 3 oligodendrocytes stem-like 1
  unknown                   212           65             0  185       268               89          30
  radial glia 1              83          189           217   76        40                7           4
  mixed                      48           22            62   17         8                1           1
  neurons 1                  17           14            50   22        10                3           5
  radial glia 3              13           11            60   25        26                9           0
  epithelial                 22           13            33   21        79               12           2
  astrocytes mature          31           13            20    9        27                7           0
  endothelial               442            3             1    1        10                0           1
  astrocytes 1               15          529             0    4        46                1           4
  radial glia 2               8            3           360    8         4                1           0
  npc                         2            0             5  410         4                2           0
  neurons 3                   0            0             0    1         2                0           0
  oligodendrocytes            0            0             0    0         0                0           0
  stem-like 1                 0            0             0    0         0                0           0

Overall Statistics
                                          
               Accuracy : 0.7401          
                 95% CI : (0.7332, 0.7468)
    No Information Rate : 0.1955          
    P-Value [Acc > NIR] : < 2.2e-16       
                                          
                  Kappa : 0.7045          
                                          
 Mcnemar's Test P-Value : NA              

Statistics by Class:

                     Class: unknown Class: radial glia 1 Class: mixed Class: neurons 1
Sensitivity                  0.9319              0.84976      0.67775           0.8902
Specificity                  0.8823              0.91715      0.97892           0.9828
Pos Pred Value               0.6580              0.54001      0.76109           0.8918
Neg Pred Value               0.9816              0.98160      0.96842           0.9826
Prevalence                   0.1955              0.10270      0.09014           0.1371
Detection Rate               0.1822              0.08727      0.06109           0.1220
Detection Prevalence         0.2769              0.16161      0.08027           0.1368
Balanced Accuracy            0.9071              0.88346      0.82834           0.9365
                     Class: radial glia 3 Class: epithelial Class: astrocytes mature Class: endothelial
Sensitivity                       0.85752           0.87492                  0.62955            0.49496
Specificity                       0.98327           0.98236                  0.98972            0.99702
Pos Pred Value                    0.79455           0.83632                  0.79139            0.90760
Neg Pred Value                    0.98919           0.98705                  0.97733            0.97094
Prevalence                        0.07015           0.09339                  0.05835            0.05578
Detection Rate                    0.06016           0.08171                  0.03673            0.02761
Detection Prevalence              0.07571           0.09770                  0.04641            0.03042
Balanced Accuracy                 0.92040           0.92864                  0.80963            0.74599
                     Class: astrocytes 1 Class: radial glia 2 Class: npc Class: neurons 3
Sensitivity                      0.61369              0.44554    0.52632        0.0038168
Specificity                      0.99148              0.99737    0.99764        0.9999354
Pos Pred Value                   0.80395              0.90000    0.91928        0.6666667
Neg Pred Value                   0.97831              0.97130    0.97629        0.9673852
Prevalence                       0.05385              0.05047    0.04866        0.0327336
Detection Rate                   0.03305              0.02249    0.02561        0.0001249
Detection Prevalence             0.04110              0.02499    0.02786        0.0001874
Balanced Accuracy                0.80259              0.72146    0.76198        0.5018761
                     Class: oligodendrocytes Class: stem-like 1
Sensitivity                         0.000000           0.000000
Specificity                         1.000000           1.000000
Pos Pred Value                           NaN                NaN
Neg Pred Value                      0.991754           0.997064
Prevalence                          0.008246           0.002936
Detection Rate                      0.000000           0.000000
Detection Prevalence                0.000000           0.000000
Balanced Accuracy                   0.500000           0.500000
[1] "predict test data"
Confusion Matrix and Statistics

                   Reference
Prediction          unknown radial glia 1 mixed neurons 1 radial glia 3 epithelial astrocytes mature
  unknown               773            33    45        19            10         27                42
  radial glia 1          40           314    33        17             9          4                32
  mixed                   0            23   256         4             2          2                 4
  neurons 1               0             2     9       489             2          8                 4
  radial glia 3           0             1     2        17           228          3                 9
  epithelial              2             1    11         3             1        281                 6
  astrocytes mature       0             0     0         0             7          3               137
  endothelial             1             0     0         2             5          2                 0
  astrocytes 1            9             0     3         1             0          4                 1
  radial glia 2           0             0     2         0             0          0                 3
  npc                     1             0     0         5             6          0                 1
  neurons 3               0             0     0         0             0          0                 0
  oligodendrocytes        0             0     0         0             0          0                 0
  stem-like 1             0             0     0         0             0          0                 0
                   Reference
Prediction          endothelial astrocytes 1 radial glia 2 npc neurons 3 oligodendrocytes stem-like 1
  unknown                    45           27             0  38        72               20           8
  radial glia 1              21           46            67  16         9                3           2
  mixed                      16            6            17   2         4                0           0
  neurons 1                   6            6            12   3         1                0           1
  radial glia 3               3            3            17   6         8                1           2
  epithelial                  9            4            10   7        29                4           1
  astrocytes mature           5            2             7   9         5                3           0
  endothelial                95            0             1   1         2                0           0
  astrocytes 1                4          126             0   1        18                0           0
  radial glia 2               2            0            84   3         0                0           0
  npc                         1            1             0 109         0                0           0
  neurons 3                   0            0             0   0         0                0           0
  oligodendrocytes            0            0             0   0         0                0           0
  stem-like 1                 0            0             0   0         0                0           0

Overall Statistics
                                          
               Accuracy : 0.7244          
                 95% CI : (0.7103, 0.7383)
    No Information Rate : 0.2069          
    P-Value [Acc > NIR] : < 2.2e-16       
                                          
                  Kappa : 0.6858          
                                          
 Mcnemar's Test P-Value : NA              

Statistics by Class:

                     Class: unknown Class: radial glia 1 Class: mixed Class: neurons 1
Sensitivity                  0.9358              0.83957      0.70914           0.8779
Specificity                  0.8781              0.91736      0.97797           0.9843
Pos Pred Value               0.6670              0.51223      0.76190           0.9006
Neg Pred Value               0.9813              0.98224      0.97128           0.9803
Prevalence                   0.2069              0.09369      0.09043           0.1395
Detection Rate               0.1936              0.07866      0.06413           0.1225
Detection Prevalence         0.2903              0.15356      0.08417           0.1360
Balanced Accuracy            0.9070              0.87846      0.84355           0.9311
                     Class: radial glia 3 Class: epithelial Class: astrocytes mature Class: endothelial
Sensitivity                       0.84444           0.84132                  0.57322            0.45894
Specificity                       0.98066           0.97594                  0.98908            0.99630
Pos Pred Value                    0.76000           0.76152                  0.76966            0.87156
Neg Pred Value                    0.98862           0.98537                  0.97326            0.97116
Prevalence                        0.06764           0.08367                  0.05987            0.05185
Detection Rate                    0.05711           0.07039                  0.03432            0.02380
Detection Prevalence              0.07515           0.09243                  0.04459            0.02730
Balanced Accuracy                 0.91255           0.90863                  0.78115            0.72762
                     Class: astrocytes 1 Class: radial glia 2 Class: npc Class: neurons 3
Sensitivity                      0.57014              0.39070    0.55897          0.00000
Specificity                      0.98913              0.99735    0.99605          1.00000
Pos Pred Value                   0.75449              0.89362    0.87903              NaN
Neg Pred Value                   0.97516              0.96639    0.97777          0.96293
Prevalence                       0.05536              0.05386    0.04885          0.03707
Detection Rate                   0.03156              0.02104    0.02730          0.00000
Detection Prevalence             0.04183              0.02355    0.03106          0.00000
Balanced Accuracy                0.77963              0.69403    0.77751          0.50000
                     Class: oligodendrocytes Class: stem-like 1
Sensitivity                         0.000000           0.000000
Specificity                         1.000000           1.000000
Pos Pred Value                           NaN                NaN
Neg Pred Value                      0.992234           0.996493
Prevalence                          0.007766           0.003507
Detection Rate                      0.000000           0.000000
Detection Prevalence                0.000000           0.000000
Balanced Accuracy                   0.500000           0.500000
save(rf, output_path,"trainedRFMFeb14.Rds")
Error in save(rf, output_path, "trainedRFMFeb14.Rds") : 
  object ‘trainedRFMFeb14.Rds’ not found
LS0tCnRpdGxlOiAiQ2VsbHR5cGVSIHdvcmtmbG93IgpvdXRwdXQ6IGh0bWxfbm90ZWJvb2sKLS0tCgoxLiBEYXRhIHByZXByb2Nlc3NpbmcKYS4JUmVhZCBGbG93Sm8gZmlsZXMgaW50byBSLgpiLglDcmVhdGUgYSBkYXRhIGZyYW1lIHdpdGggaW50ZW5zaXR5IG1lYXN1cmVtZW50cyBmb3IgZWFjaCBtYXJrZXIgZm9yIGFsbCBzYW1wbGVzIHdpdGhpbiB0aGUgZXhwZXJpbWVudCB0byBiZSBhbmFseXplZC4gIApjLglIYXJtb25pemUgZGF0YSAKZC4JRXhwbG9yZSBjbHVzdGVycwoKYGBge3J9CiMgbG9hZCBuZWNlc3NhcnkgbGlicmFyaWVzIApsaWJyYXJ5KFNldXJhdCkKbGlicmFyeShkcGx5cikgCmxpYnJhcnkoZ2dwbG90MikKIyBsaWJyYXJ5KENlbGx0eXBlUikKCmBgYAoKClJlYWQgaW4gdGhlIGZsb3cgZGF0YQpUaGlzIGRhdGEgc2hvdWxkIGJlIHRoZSBnYXRlZCBsaXZlIGNlbGxzLiAgCkFsbCBzYW1wbGVzIG5lZWQgdG8gYmUgaW4gb25lIGZvbGRlci4KCgpgYGB7cn0KCmlucHV0X3BhdGggPC0gIi9Vc2Vycy9yaGFsZW5hdGhvbWFzL0RvY3VtZW50cy9EYXRhL0Zsb3dDeXRvbWV0cnkvUGhlbm9JRC9GbG93RGF0YUZpbGVzLzlNQk8iCm91dHB1dF9wYXRoIDwtICIvVXNlcnMvcmhhbGVuYXRob21hcy9Eb2N1bWVudHMvRGF0YS9GbG93Q3l0b21ldHJ5L1BoZW5vSUQvQW5hbHlzaXMvdGVzdGluZ0xpYnJhcnkiCgojIDEuYSBSZWFkIGluIEZsb3dKbyBGaWxlcyAKCiMgY2hvb3NlIHRvIGRvd25zYW1wbGUgdG8gOTAwMCB3aGVyZSBwb3NzaWJsZQojIGNoZWNrIHRoaXMgLSBJIGRvbid0IHRoaW5rIGl0IHdvcmtlZApmbG93c2V0IDwtIGZzY190b19mcyhpbnB1dF9wYXRoLCBkb3duc2FtcGxlID0gOTAwMCkKIyBkb3duIHNhbXBsZSBjYW4gYmUgYSBudW1iZXIsICdub25lJyBvciAnbWluJwoKIyBsb29rIGF0IGZpbGUgbmFtZXMgYW5kIHJlbmFtZSB3aXRoIHNob3J0ZXIgc2FtcGxlIG5hbWVzCgpzYW1wbGVOYW1lcyhmbG93c2V0KQpzYW1wbGVOYW1lcyhmbG93c2V0KSA8LSBzYW1wbGVOYW1lcyhmbG93c2V0KSA8LSBjKCIzNDUwXzAzMDYiLCJBSVcwMDJfMDMwNiIsIkFKRzAwMUNfMDMwNiIsIjM0NTBfMDMxN0EiLCJBSVcwMDJfMDMxN0EiLCJBSkcwMDFDXzAzMTdBIiwiMzQ1MF8wMzE3QiIsIkFJVzAwMl8wMzE3QiIsIkFKRzAwMUNfMDMxN0IiKQpzYW1wbGVOYW1lcyhmbG93c2V0KQoKCiMgaWYgd2Ugd2FudCB0byBzYXZlIHRoZSBmbG93c2V0IG9iamVjdCBub3cgd2UgY2FuIAojIHRoaXMgd291bGQgYmUgcmVhZCBiYWNrIGluIHdpdGggZmxvd3NldCAKIyAKCgoKYGBgCgoKSGFybW9uaXplIGRhdGEgdG8gcmVtb3ZlIGJhdGNoIG9yIHRlY2huaWNhbCB2YXJpYXRpb24KClRoaXMgcmVxdWlyZXMgdXMgdG8gbG9vayBhbmQgc2VlIHdoZXJlIHRoZXJlIGFyZSB0d28gcGVha3MgdG8gYWxpZ24uIFdlIG5lZWQgdG8gdmlzdWFsaXplIHRoZSBwZWFrcyBvZiB0aGUgdHJhbnNmb3JtZWQgZGF0YSBiZWZvcmUgYWxpZ25pbmcuCgpgYGB7cn0KCiMgd2UgY2FuIGRlY2lkZWQgd2hhdCBsZXZlbCBvZiBwcm9jZXNzaW5nIHRvIGNob29zZSB3aXRoIHRoZSBhcmd1bWVudCAncHJvY2Vzc2luZycKIyBiaWV4cCBvbmx5IGFwcGxpZXMgYSBiaWV4cG9uZW50aWFsIHRyYW5zZm9ybWF0aW9uCiMgYWxpZ24gYXBwbGllcyBiaWV4cCB0cmFuc2Zvcm0gYW5kIHRoZW4gYWxpZ25zIHBlYWtzCiMgcmV0cm8gKGRlZmF1bHQpLCB0cmFuc2Zvcm1zLCBhbGlnbnMgYW5kIHRoZW4gcmV2ZXJzZSB0cmFuc2Zvcm1zCmZsb3dzZXRfYmlleHAgPC0gaGFybW9uaXplKGZsb3dzZXQsIHByb2Nlc3NpbmcgPSAnYmlleHAnKQojIHdlIGNhbiB2aXN1YWxpemUgdGhlIHBlYWtzIHRvIHNlZSB3aGVyZSB0aGVyZSBhcmUgdHdvIHBlYWtzIGZvciBhbGlnbm1lbnQKCiMgd2UgbmVlZCB0byBlbnRlciB0aGUgY29sdW1uIGluZGV4IGZvciB3aGljaCBwZWFrcyB0byBhbGlnbiwgdGhlIGFsaWdubWVudCBmb3Igb25lIG9yIHR3byBwZWFrcyBpcyBub3QgdGhlIHNhbWUuIAojcGxvdGRlbnNpdHlfZmxvd3NldChmbG93c2V0KQpwbG90ZGVuc2l0eV9mbG93c2V0KGZsb3dzZXRfYmlleHApICMgdG8gc2VlIHRoZSBwZWFrcwoKZmxvd3NldF9hbGlnbiA8LSBoYXJtb25pemUoZmxvd3NldCwgcHJvY2Vzc2luZyA9ICdhbGlnbicsIAogICAgICAgICAgICAgICAgICAgICAgICAgICB0d29fcGVha3MgPSBjKDc6MjApLAogICAgICAgICAgICAgICAgICAgICAgIG9uZV9wZWFrID0gYygxOjYsMjEpLCB0aHJlc2hvbGQgPSAwLjAxKQoKZmxvd3NldF9yZXRybyA8LSBoYXJtb25pemUoZmxvd3NldCwgcHJvY2Vzc2luZyA9ICdyZXRybycsIAogICAgICAgICAgICAgICAgICAgICAgICAgICB0d29fcGVha3MgPSBjKDc6MjApLAogICAgICAgICAgICAgICAgICAgICAgIG9uZV9wZWFrID0gYygxOjYsMjEpLCB0aHJlc2hvbGQgPSAwLjAxKQoKZGYgPC0gZmxvd3NldF90b19jc3YoZmxvd3NldF9yZXRybykKCgoKCmBgYAoKTm93IHdlIGhhdmUgbWFkZSBhbGwgdGhlIGRpZmZlcmVudCBwcm9jZXNzaW5nIG9mIHRoZSBmc2MgZmlsZXMuICBXZSBjYW4gdmlzdWFsaXplIHRoZSBpbnRlbnNpdHkgaW4gY2VsbCBkZW5zaXR5IHBsb3RzIHRvIHNlZSB0aGUgYWxpZ25tZW50CgpgYGB7cn0KI3Bsb3RkZW5zaXR5X2Zsb3dzZXQoZmxvd3NldCkKcGxvdGRlbnNpdHlfZmxvd3NldChmbG93c2V0X2JpZXhwKQpwbG90ZGVuc2l0eV9mbG93c2V0KGZsb3dzZXRfYWxpZ24pCiNwbG90ZGVuc2l0eV9mbG93c2V0KGZsb3dzZXRfcmV0cm8pCgoKYGBgCgpOb3cgd2Ugd2lsbCBtYWtlIHRlc3Qgb3V0IGNsdXN0ZXJpbmcuCkZvciBTZXVyYXQgY2x1c3RlcmluZyBhbmQgUGhlbm9ncmFwaCB3ZSB3aWxsIG1ha2UgdGhlIFNldXJhdCBvYmplY3QKRmxvd3NvbWUgdGFrZXMgaW4gdGhlIGRhdGFmcmFtZSBkaXJlY3RseS4KCgpgYGB7cn0KCiMgdGhlIGZ1bmN0aW9uIG1ha2Vfc2V1IHdpbGwgdGFrZSBpbiB0aGUgZGYgb2YgZXhwcmVzc2lvbiBhbmQgQW50aWJvZHkvTWFya2VyIGxpc3QgYXMgYSB2ZWN0b3IgYW5kIGNyZWF0ZSBhIHNldXJhdCBvYmplY3QuIFZhbHVlcyBhcmUgc2NhbGVkLiBNYXJrZXIgZXhwcmVzc2lvbiB3aWxsIGJlIGluIHRoZSAiUk5BIiBzbG90LiBQQ0EgaXMgY2FsY3VsYXRlZCB1c2luZyBBQiB2ZWN0b3IgYXMgdGhlIGZlYXR1cmVzIAoKIyBtYWtlIHN1cmUgdG8gYWx3YXlzIGtlZXAgdGhlIHNhbWUgYW50aWJvZHkgb3JkZXIgb3IgeW91ciBsYWJlbHMgd2lsbCBub3QgYmUgY29ycmVjdAoKCiMgYW50aWJvZHkgZmVhdHVyZXMgaW4gb3JkZXIgdG8gYXBwZWFyIG9uIHRoZSBwbG90cwpBQiA8LSBjKCJDRDI0IiwiQ0Q1NiIsIkNEMjkiLCJDRDE1IiwiQ0QxODQiLCJDRDEzMyIsIkNENzEiLCJDRDQ0IiwiR0xBU1QiLCJBUVA0IiwiSGVwYUNBTSIsICJDRDE0MGEiLCJPNCIpCnNldSA8LSBtYWtlX3NldShkZiwgQUJfdmVjdG9yID0gQUIpCgoKYGBgClNhdmUgZGF0YWZyYW1lIGFuZCBzZXVyYXQgb2JqZWN0IGZvciBsYXRlcgoKYGBge3J9CgpvdXRwdXRfcGF0aCA8LSAiL1VzZXJzL3JoYWxlbmF0aG9tYXMvRG9jdW1lbnRzL0RhdGEvRmxvd0N5dG9tZXRyeS9QaGVub0lEL0FuYWx5c2lzL3Rlc3RpbmdMaWJyYXJ5LyIKCiMgdG8gc2F2ZSB0aGUgZGYgZm9yIGxhdGVyCiMgd3JpdGUuY3N2KGRmLCAicGF0aHdheS9maWxlbmFtZS5jc3YiKQp3cml0ZS5jc3YoZGYsIHBhc3RlKG91dHB1dF9wYXRoLCJkZjkwMDBGZWIxNS5jc3YiLCBzZXAgPSAiIikpCgojIHNhdmUgdGhlIHNldXJhdCBvYmplY3QKc2F2ZVJEUyhzZXUsIHBhc3RlKG91dHB1dF9wYXRoLCJzZXU5MDAwRmViMTUuUkRTIiwgc2VwID0gIiIpKQoKCgpgYGAKCgpSZWFkIGluIHRoZSBjc3Ygb2YgdGhlIGZsb3cgZmlsZXMgcHJvY2Vzc2VkIGFuZCB0aGUgc2V1cmF0IG9iamVjdAoKYGBge3J9CmRmLmlucHV0IDwtIHJlYWQuY3N2KCIvVXNlcnMvcmhhbGVuYXRob21hcy9Eb2N1bWVudHMvRGF0YS9GbG93Q3l0b21ldHJ5L1BoZW5vSUQvQW5hbHlzaXMvdGVzdGluZ0xpYnJhcnkvZGY5MDAwRmViMTUuY3N2IikKCnNldSA8LSByZWFkUkRTKCIvVXNlcnMvcmhhbGVuYXRob21hcy9Eb2N1bWVudHMvRGF0YS9GbG93Q3l0b21ldHJ5L1BoZW5vSUQvQW5hbHlzaXMvdGVzdGluZ0xpYnJhcnkvc2V1OTAwMEZlYjE1LlJEUyIpCgoKYGBgCgpUZXN0IEZsb3dzb20KCmBgYHtyfQoKb3V0cHV0X3BhdGggPC0gIi9Vc2Vycy9yaGFsZW5hdGhvbWFzL0RvY3VtZW50cy9EYXRhL0Zsb3dDeXRvbWV0cnkvUGhlbm9JRC9BbmFseXNpcy90ZXN0aW5nTGlicmFyeS9leHBfY2x1c3RlcnMvZmxvdy8iCgpmbG93c29tLnRlc3QgPC0gZmxvd3NvbShpbnB1dCA9IHNldSwgI3NldXJhdAogICAgICAgICAgICAgICAgICAgIGRmX2lucHV0ID0gZGYuaW5wdXQsICN0aGUgcHJvY2Vzc2VkIGRmMiBmaWxlIGJlZm9yZSBiZWluZyBjb252ZXJ0ZWQgdG8gc2V1cmF0CiAgICAgICAgICAgICAgICAgICAgZmxvd19rID0gYygzLDUpLAogICAgICAgICAgICAgICAgICAgIHJ1bi5zdGF0cyA9IFRSVUUsCiAgICAgICAgICAgICAgICAgICAgcnVuLnBsb3QgPSBGQUxTRSwKICAgICAgICAgICAgICAgICAgICBzYXZlX3RvID0gb3V0cHV0X3BhdGgpCgpgYGAKCgoKRXhwbG9yZSBjbHVzdGVyIHBhcmFtZXRlcnMKCmBgYHtyfQpkZjIgPC0gZGYuaW5wdXQgJT4lIGRwbHlyOjpzZWxlY3QoQUIpICMgbmVlZCB0byBhZGQgdGhpcyBsaW5lIGludG8gdGhlIG1haW4gZXhwbG9yZSBwYXJhbSBmdW5jdGlvbiAKCmBgYAoKUGhlbm9ncmFwaAoKYGBge3J9CgpvdXRwdXRfcGF0aCA8LSAiL1VzZXJzL3JoYWxlbmF0aG9tYXMvRG9jdW1lbnRzL0RhdGEvRmxvd0N5dG9tZXRyeS9QaGVub0lEL0FuYWx5c2lzL3Rlc3RpbmdMaWJyYXJ5L2V4cF9jbHVzdGVycy9waGVuby8iCgpwaGVuby50ZXN0IDwtIHBoZW5vZ3JhcGgoaW5wdXQgPSBzZXUsIGRmX2lucHV0ID0gZGYuaW5wdXQsCiAgICAgICAgICAgICAgICAgICAgICAgICBwaGVub19sb3Vfa24gPSBjKDIwLDQwKSwKICAgICAgICAgICAgICAgICAgICAgICAgIHJ1bi5zdGF0cyA9IFRSVUUsCiAgICAgICAgICAgICAgICAgICAgICAgICBydW4ucGxvdCA9IFRSVUUsCiAgICAgICAgICAgICAgICAgICAgICAgICBzYXZlX3RvID0gb3V0cHV0X3BhdGgpCgoKYGBgCgoKVGVzdCBmdW5jdGlvbnMgTG91dmFpbgoKYGBge3J9CgpvdXRwdXRfcGF0aCA8LSAiL1VzZXJzL3JoYWxlbmF0aG9tYXMvRG9jdW1lbnRzL0RhdGEvRmxvd0N5dG9tZXRyeS9QaGVub0lEL0FuYWx5c2lzL3Rlc3RpbmdMaWJyYXJ5L2V4cF9jbHVzdGVycy9zZXUvIgoKbG91LnRlc3QgPC0gbG91dmFpbihpbnB1dCA9IHNldSwgI3NldSBvYmplY3QKICAgICAgICAgICAgICAgICAgICBkZl9pbnB1dCA9IGRmLmlucHV0LAogICAgICAgICAgICAgICAgICAgIHBoZW5vX2xvdV9rbiA9IGMoMjAsNDApLAogICAgICAgICAgICAgICAgICAgIHJlc29sdXRpb25zID0gYygwLjIsMC41KSwKICAgICAgICAgICAgICAgICAgICBydW4ucGxvdCA9IEZBTFNFLCAjb3B0aW9uIHRvIHNhdmUgdGhlIGdyYXBocyAgCiAgICAgICAgICAgICAgICAgICAgcnVuLnN0YXRzID0gRkFMU0UsICNvcHRpb24gdG8gc2F2ZSBzdGF0cyBsaXN0ICAKICAgICAgICAgICAgICAgICAgICBzYXZlX3RvICNvbmx5IHJlcXVpcmVkIHdoZW4gc2F2ZSBpcyBUUlVFCikKCgpgYGAKCgoKCgpBbm5vdGF0ZSBjbHVzdGVycwoxLiBWaXN1YWxpemF0aW9uIGZvciBtYW51YWwgYW5ub3RhdGlvbi4gLSBvdXRwdXQgYnkgY2x1c3RlcmluZyBmdW5jdGlvbgoyLiBDQU0gKENvcnJlbGF0aW9uIGFzc2lnbm1lbnQgbW9kZWwpIC0gcmVxdWlyZXMgcmVmZXJlbmNlIG1hdHJpeAozLiBSRk0gKFJhbmRvbSBGb3Jlc3QgTW9kZWwpIC0gcmVxdWlyZXMgYW5ub3RhdGVkIG1hdGNoaW5nIGZsb3cgZGF0YXNldAo0LiBTZXVyYXQgbGFiZWwgdHJhbnNmZXIgLSByZXF1aXJlcyBhbm5vdGF0ZWQgbWF0Y2hpbmcgZmxvdyBkYXRhIGluIGEgc2V1cmF0IG9iamVjdAoKCgpgYGB7cn0KCiMgcnVuIGNsdXN0ZXJpbmcgd2l0aCBvbmx5IGRlc2lyZWQgY29uZGl0aW9ucyAtIHVzZSBmdW5jdGlvbiAtIFRFTVAgcnVuIGRpcmVjdGx5IAoKc2V1IDwtIFJ1blBDQShzZXUsIGZlYXR1cmVzID0gQUIpCnNldSA8LSBGaW5kTmVpZ2hib3JzKHNldSwgZGltcyA9IDE6MTIsIGsucGFyYW0gPSA2MCkKIyBtdXN0IHRha2Ugb25lIGxlc3MgdGhhbiB0aGUgbnVtYmVyIG9mIGFudGlib2RpZXMgCgpzZXUgPC0gRmluZENsdXN0ZXJzKHNldSwgcmVzb2x1dGlvbiA9IDAuOCkKc2V1IDwtIFJ1blVNQVAoc2V1LCBkaW1zID0gMToxMiwgbi5uZWlnaGJvcnMgPSA0NiwgbWluLmRpc3QgPSAwLjQsCiAgICAgICAgICAgICAgIHNwcmVhZCA9IDEuNSkKRGltUGxvdChzZXUpCgoKYGBgCgpgYGB7cn0KIyBzYXZlIHdpdGggZ3JhcGgKc2F2ZVJEUyhzZXUsIi9Vc2Vycy9yaGFsZW5hdGhvbWFzL0RvY3VtZW50cy9EYXRhL0Zsb3dDeXRvbWV0cnkvUGhlbm9JRC9BbmFseXNpcy90ZXN0aW5nTGlicmFyeS9zZXU5MDAwRmViMjQuUkRTIikKCmBgYAoKCgpWaXN1YWxpemUgZXhwcmVzc2lvbiBvbiBVTUFQIGFuZCB3aXRoIGhlYXQgbWFwcwoKYGBge3J9CgojIHRoaXMgd2lsbCBsZXQgdXMgc2VlIG9uZSBhdCBhdCB0aW1lCmZvciAoaSBpbiBBQikgewogIHByaW50KEZlYXR1cmVQbG90KHNldSwgZmVhdHVyZXMgPSBpLCBtaW4uY3V0b2ZmID0gJ3ExJywgbWF4LmN1dG9mZiA9ICdxOTUnLCBsYWJlbCA9IFRSVUUpKQp9CgoKYGBgCgoKCmBgYHtyfQoKb3V0cHV0X3BhdGggPC0gIi9Vc2Vycy9yaGFsZW5hdGhvbWFzL0RvY3VtZW50cy9EYXRhL0Zsb3dDeXRvbWV0cnkvUGhlbm9JRC9BbmFseXNpcy90ZXN0aW5nTGlicmFyeS8iCnNhdmVSRFMoc2V1LCBwYXN0ZShvdXRwdXRfcGF0aCwiY2x1c3RlcjkwMDAuUkRTIikpCgpgYGAKClByZWRpY3QgY2VsbCBhbm5vdGF0aW9ucyB3aXRoIENBTSAoQ29ycmFsYXRpb25zIGFzc2lnbm1lbnQgbWV0aG9kKQoKYGBge3J9CgpyZWZlcmVuY2VfcGF0aCA8LSAiL1VzZXJzL3JoYWxlbmF0aG9tYXMvR0lUSFVCL0NlbGx0eXBlUi9EYXRhL1JlZmVyZW5jZU1hdHJpeDljZWxsdHlwZXNPcmRlcmVkLmNzdiIKCgoKdGVzdF9kYXRhIDwtIHJlYWQuY3N2KCIvVXNlcnMvcmhhbGVuYXRob21hcy9Eb2N1bWVudHMvRGF0YS9GbG93Q3l0b21ldHJ5L1BoZW5vSUQvQW5hbHlzaXMvdGVzdGluZ0xpYnJhcnkvZGY5MDAwRmViMTUuY3N2IikgCnJlZmVyZW5jZV9kYXRhIDwtIHJlYWQuY3N2KHJlZmVyZW5jZV9wYXRoKQoKY29yIDwtIGZpbmRfY29ycmVsYXRpb24odGVzdF9kYXRhLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWZlcmVuY2VfZGF0YSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWluX2NvcnIgPSAwLjMsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pbl9kaWZmID0gMC4wNSkKCmNsYXNzKGNvcikKIyBjcmVhdGVzIGEgZGF0YWZyYW1lIHdpdGggY29yMSBjb3IyIGFuZCBwcmVkaWN0ZWQgY2VsbCB0eXBlIGxhYmVsCgpgYGAKClZpc3VhbGl6ZSB0aGUgQ0FNIHJlc3VsdHMKCmBgYHtyfQoKcGxvdF9jb3JyKGNvcikKCgpgYGAKCkFwcGx5IGNvcnJlbGF0aW9uIHByZWRpY3Rpb25zIHRvIGNsdXN0ZXJzIGFuZCBvdXRwdXQgYSB2ZWN0b3IgZm9yIGFubm90YXRpb24gZnVuY3Rpb25zCgpgYGB7cn0KCgpzZXUgPC0gQWRkTWV0YURhdGEob2JqZWN0PXNldSwgbWV0YWRhdGE9Y29yJGNlbGwubGFiZWwsIGNvbC5uYW1lID0gJ2Nvci5sYWJlbHMnKQojIHNlZSB0aGUgbGFiZWxzIGFkZGVkCnVuaXF1ZShzZXUkY29yLmxhYmVscykKCnNldS5jbHVzdGVyID0gc2V1JFJOQV9zbm5fcmVzLjAuOApzZXUubGFiZWxzID0gc2V1JGNvci5sYWJlbHMKCiMgcGxvdCB0aGUgY2x1c3RlciBwcmVkaWN0aW9ucwpwbG90X2xhYl9jbHVzdChzZXUsIHNldSRSTkFfc25uX3Jlcy4wLjgsIHNldSRjb3IubGFiZWxzKQoKCgpgYGAKClJ1biBnZXQgYW5ub3RhdGlvbnMgZnVuY3Rpb24gdG8gcmV0dXJuIGEgdmVjdG9yIG9mIGFubm90YXRpb24gaW4gdGhlIG9yZGVyIG9mIHRoZSBjbHVzdGVycy4KCmBgYHtyfQoKCmNvci5hbm4gPC0gZ2V0X2Fubm90YXRpb24oc2V1LCBzZXUuY2x1c3RlciA9IHNldSRSTkFfc25uX3Jlcy4wLjgsIHNldS5sYWJlbCA9IHNldSRjb3IubGFiZWxzLCAKICAgICAgICAgICAgICAgdG9wX24gPSAzLCBpZ25vcmVfdW5rbm93biA9IFRSVUUsIExhYmVsID0gIkNBTSIpCmNvci5hbm4KCgoKCmBgYAoKClVzZSBhIHRyYWluZWQgUmFuZG9tIEZvcmVzdCBtb2RlbCB0byBwcmVkaWN0IGNlbGwgdHlwZXMuIApUcmFpbmluZyBvZiB0aGUgUmFuZG9tIEZvcmVzdCBtb2RlbCB3aXRoIGFuIGFubm90YXRlZCBkYXRhIHNldCBpcyBiZWxvdy4KCmBgYHtyfQoKIyB5b3UgbXVzdCBoYXZlIGEgc2F2ZWQgdHJhaW5lZCBtb2RlbCBmcm9tIGEgZGF0YSBvYmplY3QgYW5ub3RhdGVkIGZyb20gdGhlIHNhbWUgbWFya2VycwoKcmYgPC0gcmVhZFJEUygiL1VzZXJzL3JoYWxlbmF0aG9tYXMvRG9jdW1lbnRzL0RhdGEvRmxvd0N5dG9tZXRyeS9QaGVub0lEL0FuYWx5c2lzL1BhcGVyRmlndXJlcy9SRk1fdHJhaW5lZC4xMTA3MjAyMi5SZHMiKQoKCnJmbS5wcmVkIDwtIFJGTV9wcmVkaWN0KHNldSwgcmYpCmhlYWQocmZtLnByZWQpCgojIGFkZCB0aGUgcHJlZGljdGlvbnMgaW50byB0aGUgc2V1cmF0IG9iamVjdAoKc2V1IDwtIEFkZE1ldGFEYXRhKG9iamVjdD1zZXUsIG1ldGFkYXRhPXJmbS5wcmVkJGBwcmVkaWN0KHJmLCBkZilgLCBjb2wubmFtZSA9ICdyZm0ubGFiZWxzJykKCiMgY2hlY2sgdGhhdCB0aGUgZGF0YSBpcyBhZGRlZCAKdGFibGUoc2V1JHJmbS5sYWJlbHMpCgoKYGBgCgpHZXQgdGhlIGFubm90YXRpb24gYnkgY2x1c3RlciBmb3IgdGhlIFJGTQoKYGBge3J9CgpyZm0uYW5uIDwtIGdldF9hbm5vdGF0aW9uKHNldSwgc2V1JFJOQV9zbm5fcmVzLjAuOCxzZXUkcmZtLmxhYmVscywgCiAgICAgICAgICAgICAgIHRvcF9uID0gMywgZmlsdGVyX291dCA9IGMoInVua25vd24iLCJVbmtub3duIiwiTWl4ZWQiKSwgTGFiZWwgPSAiUkZNIikKcmZtLmFubgoKCmBgYAoKUGxvdCBSRk0gcHJlZGljdGlvbnMKCmBgYHtyfQoKCnBsb3RfbGFiX2NsdXN0KHNldSwgc2V1LmNsdXN0ZXIgPSBzZXUkUk5BX3Nubl9yZXMuMC44LCBzZXUubGFiZWxzID0gc2V1JHJmbS5sYWJlbHMsIGZpbHRlcl9vdXQgPSBjKCJ1bmtub3duIiwiVW5rbm93biIsIk1peGVkIikpCgoKYGBgCgoKClByZWRpY3RpbmcgY2VsbCB0eXBlcyB3aXRoIFNldXJhdCBsYWJlbCB0cmFuc2ZlciB1c2luZyBhbmNob3JzCgoKCmBgYHtyfQoKIyB0YWtlcyBpbiBhIHNldXJhdCBvYmplY3Qgd2l0aCB0aGUgbGFiZWxzIGFkZGVkIAojIG1ha2VzIGEgZGF0YWZyYW1lIHdpdGggdGhlIGNvdW50IG9mIHByZWRpY3RlZCBsYWJlbHMgZm9yIGVhY2ggY2x1c3RlcgojIGlucHV0IHNldXJhdCBvYmplY3Qgd2l0aCB0aGUgcHJlZGljdGVkIGxhYmVscyBpbiB0aGUgbWV0YSBkYXRhCiMgaW5wdXQgdGhlIGNsdXN0ZXJzIG1ldGEgZGF0YSBzbG90IHRvIGJlIGxhYmVscwojIGlucHV0IHRoZSBtZXRhIGRhdGEgc2xvdCB3aXRoIHRoZSBsYWJlbHMgKGNvcnJlbGF0aW9uLCByYW5kb20gZm9yZXN0LCBzZXVyYXQgcHJlZGljdGVkKQoKI25lZWQgcmVmZXJlbmNlIGRhdGEgb2JqZWN0IHdpdGggbGFiZWxzCnNldS5yPC0gcmVhZFJEUygiL1VzZXJzL3JoYWxlbmF0aG9tYXMvRG9jdW1lbnRzL0RhdGEvRmxvd0N5dG9tZXRyeS9QaGVub0lEL0FuYWx5c2lzL1BhcGVyRmlndXJlcy9TZXU5MDAwYW5ub3QuMDgwNzIwMjEuUkRTIikKCgojIHRoZSBvdXRwdXQgaXMgYSBzZXVyYXQgb2JqZWN0IHdpdGggdGhlIHByZWRpY3RlZCBhbm5vdGF0aW9ucwoKc2V1IDwtIHNldXJhdF9wcmVkaWN0KHNldSwgc2V1LnIsIHJlZl9pZCA9ICdzdWJncm91cHMnLCBkb3duLnNhbXBsZSA9IDUwMCwgbWFya2VycyA9IEFCKQoKCgoKYGBgCgpgYGB7cn0KCiMgcGxvdCB0aGUgc2V1cmF0IGFuY2hvciBwcmVkaWN0aW9ucwojIGdldCB0aGUgYW5ub3RhdGlvbiB0YWJsZSBmb3IgdGhlIHNldXJhdCBhbmNob3IgcHJlZGljdGlvbnMgCgpwbG90X2xhYl9jbHVzdChzZXUsIHNldSRSTkFfc25uX3Jlcy4wLjgsIHNldSRzZXUucHJlZCkKCiMgdG8gbm90IGZpbHRlciBhbnl0aGluZyB1c2UgYygpCnNldS5hbm4gPC0gZ2V0X2Fubm90YXRpb24oc2V1LCBzZXUkUk5BX3Nubl9yZXMuMC44LHNldSRzZXUucHJlZCwgCiAgICAgICAgICAgICAgIHRvcF9uID0gMywgZmlsdGVyX291dCA9IGMoKSwgTGFiZWwgPSAiU2V1cmF0IikKc2V1LmFubgoKCmBgYAoKR2V0IGEgY29uc2Vuc3VzIG9mIGNsdXN0ZXIgYW5ub3RhdGlvbnMsIEFkZCB0aGUgYW5ub3RhdGlvbnMgdG8gdGhlIHNldXJhdCBvYmplY3QKCgoKYGBge3J9CgojIG1hbnVhbCBhbm5vdGF0aW9ucwojIHF1aWNrIGNoZWF0IGp1c3QgdXNpbmcgdGhlIHNldXJhdCBsYWJlbHMgdG8gZ2V0IGEgc3Rpbmcgb2YgYW5ub3RhdGlvbnMKCnRlbXAgPC0gcGFzdGUoIiciLGFzLmNoYXJhY3RlcihzZXUuYW5uJFNldXJhdCksICInIiwgY29sbGFwc2UgPSAiLCAiLCBzZXAgPSAiIiApCm15LmFubiA8LSBjKCdVbmtub3duJywgJ1JhZGlhbCBHbGlhIDEnLCAnVW5rbm93bicsICdNaXhlZCcsICdOZXVyb25zIDEnLCAnUmFkaWFsIEdsaWEgMycsICdFcGl0aGVsaWFsJywgJ0FzdHJvY3l0ZXMgbWF0dXJlJywgJ0VuZG90aGVsaWFsJywgJ0FzdHJvY3l0ZXMgMScsICdSYWRpYWwgR2xpYSAyJywgJ05ldXJvbnMgMScsICdOUEMnLCAnTmV1cm9ucyAzJywgJ0VwaXRoZWxpYWwnLCAnTmV1cm9ucyAxJywgJ0VwaXRoZWxpYWwnLCAnT2xpZ29kZW5kcm9jeXRlcycsICdTdGVtLWxpa2UgMScsICdFcGl0aGVsaWFsJywgJ05QQycsICdBc3Ryb2N5dGVzIG1hdHVyZScsICdPbGlnb2RlbmRyb2N5dGVzJywgJ1N0ZW0tbGlrZSAxJykKY2x1c3Rlci5uIDwtIGMoMDoyMykKbWFuLmFubiA8LSBkYXRhLmZyYW1lKGNsdXN0ZXIubiwgbXkuYW5uKQpjb2xuYW1lcyhtYW4uYW5uKSA8LSBjKCJDbHVzdGVyIiwibWFudWFsIikKCiMgbmVlZHMgdG8gYmUgZmFjdG9ycyAKbWFuLmFubiA8LSBkYXRhLmZyYW1lKGxhcHBseShtYW4uYW5uLCBmYWN0b3IpKQoKZGltKG1hbi5hbm4pCmRpbShjb3IuYW5uKQpkaW0ocmZtLmFubikKZGltKHNldS5hbm4pCiMgZnVuY3Rpb24gdG8gdGFrZSBpbiBkYXRhZnJhbWVzIG9mIGRpZmZlcmVudCBwcmVkaWN0aW9ucyBhbmQgYSB2ZWN0b3Igb2YgbWFudWFsIGFubm90YXRpb24KIyBvbmx5IG9uZSBpcyByZXF1aXJlZAoKIyB0aGUgYW5ub3RhdGlvbiBmdW5jdGlvbiB0YWtlcyBpbiBhIGxpc3Qgb2YgdGhlIGFubm90YXRpb24gZGF0YWZyYW1lcwoKYW5uLmxpc3QgPC0gbGlzdChtYW4uYW5uLGNvci5hbm4scmZtLmFubixzZXUuYW5uKQoKIyBhbm5vdGF0ZSB0aGUgc2V1cmF0IG9iamVjdAoKc2V1IDwtIGNsdXN0ZXJfYW5ub3RhdGUoc2V1LCBhbm4ubGlzdCwgCiAgICAgICAgICAgICAgICAgICAgICAgIGFubm90YXRpb25fbmFtZSA9IkNlbGxUeXBlMyIsIAogICAgICAgICAgICAgICAgICAgICAgICB0b19sYWJlbCA9ICJSTkFfc25uX3Jlcy4wLjgiKQoKCmBgYAoKCmBgYHtyfQpEaW1QbG90KHNldSkKCmBgYAoKU2F2ZSBhbiBhbm5vdGF0ZWQgZGF0YSBvYmplY3QKCmBgYHtyfQoKCmBgYAoKCgpDb21wYXJlIGdyb3VwcwoKYGBge3J9CgpzZXUgPC0gcmVhZFJEUygiL1VzZXJzL3JoYWxlbmF0aG9tYXMvRG9jdW1lbnRzL0RhdGEvRmxvd0N5dG9tZXRyeS9QaGVub0lEL0FuYWx5c2lzL3Rlc3RpbmdMaWJyYXJ5L3NldTkwMDBGZWIxNS5SRFMiKQoKCmBgYAoKCgoKCgoKCgoKVHJhaW4gUmFuZG9tIEZvcmVzdCBtb2RlbApSZXF1aXJlcyBhIGxhYmVsbGVkIHNldXJhdCBvYmplY3QKTW9yZSBjZWxscyB3aWxsIGdpdmUgaGlnaGVyIGFjY3VyYWN5IGJ1dCBpbmNyZWFzZSBjb21wdXRhdGlvbiB0aW1lLgpSdW4gaW4gSFBDIHdpdGggbG90cyBvZiBjZWxscwoKCmBgYHtyfQoKcmYgPC0gUkZNX3RyYWluKHNldXJhdGVfb2JqZWN0ID0gc2V1LCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBQl9saXN0ID0gQUIsIGFubm90YXRpb25zID0gc2V1JENlbGxUeXBlMywKICAgICAgICAgICAgICAgICAgICAgIHNwbGl0ID0gYygwLjgsMC4yKSwKICAgICAgICAgICAgICAgICAgICAgIGRvd25zYW1wbGUgPSAyMDAwMCwKICAgICAgICAgICAgICAgICAgICAgIHNlZWQgPSAyMjIsCiAgICAgICAgICAgICAgICAgICAgICBteXRyeSA9IGMoMToxMCksCiAgICAgICAgICAgICAgICAgICAgICBtYXhub2RlcyA9IGMoMTI6IDI1KSwKICAgICAgICAgICAgICAgICAgICAgIHRyZWVzID0gYygyNTAsIDUwMCwgMTAwMCwyMDAwKSwKICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X25vZGUgPSAxNSkKCnNhdmUocmYsIG91dHB1dF9wYXRoLCJ0cmFpbmVkUkZNRmViMTQuUmRzIikKCmBgYAoKCg==